// #include <iostream>
// #include <list>
// #include <string>
// #include <vector>
// #include "Reu_type.h"
// using namespace std;

// template <typename T>
// void func1(T& a) {}
// template <typename T>
// void func2(const T& a) {}
// template <typename T>
// void func3(T&& a) {}
// template <typename T>
// void g(T&& a) {
//   return vector<T> v;
// }
// int main(int argc, char** argv) {
//   int i;
//   const int ci = 0;

//   g(42);
//   func1(i);   // T为int
//   func1(ci);  // T为const int
//   func1(5);   //错误，5不是左值

//   func2(i);   // T为int
//   func2(ci);  // T为int
//   func2(5);   // T为int,右值绑定

//   func3(i);   // T为int&
//   func3(ci);  // T为const int &
//   func3(i = ci);
//   func3(5);  // T为int,右值绑定

//   cin.get();
//   return 0;
// }